package com.ruoyi.yf.mapper;

import com.ruoyi.system.domain.SysDept;
import com.ruoyi.yf.domain.YfDept;
import com.ruoyi.yf.domain.YfDistrictStatistical;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 地区医废每日统计Mapper接口
 *
 * @author XiaoYi...
 * @date 2020-09-29
 *         63991cd6-df12-4d53-bf43-1d2786cd626c
 */
public interface YfDistrictStatisticalMapper {
    /**
     * 查询地区医废每日统计
     *
     * @param id
     *         地区医废每日统计ID
     * @return 地区医废每日统计
     *         97a368c4-7d35-4c17-8ba2-86cba55db4af
     */
    public YfDistrictStatistical selectYfDistrictStatisticalById(Long id);

    /**
     * 查询地区医废每日统计列表
     *
     * @param yfDistrictStatistical
     *         地区医废每日统计
     * @return 地区医废每日统计集合
     *         6e869948-f827-489f-b46b-ccff884c03ae
     */
    public List<YfDistrictStatistical> selectYfDistrictStatisticalList(YfDistrictStatistical yfDistrictStatistical);

    /**
     * 新增地区医废每日统计
     *
     * @param yfDistrictStatistical
     *         地区医废每日统计
     * @return 结果
     *         f30007b5-e497-4e61-b692-66fa9bc92c8d
     */
    public int insertYfDistrictStatistical(YfDistrictStatistical yfDistrictStatistical);

    /**
     * 修改地区医废每日统计
     *
     * @param yfDistrictStatistical
     *         地区医废每日统计
     * @return 结果
     *         4bff0056-d1b9-4f05-b0a9-304775972139
     */
    public int updateYfDistrictStatistical(YfDistrictStatistical yfDistrictStatistical);

    /**
     * 删除地区医废每日统计
     *
     * @param id
     *         地区医废每日统计ID
     * @return 结果
     *         40925e11-5f10-4fd6-ab8b-f5ad61ede9ef
     */
    public int deleteYfDistrictStatisticalById(Long id);

    /**
     * 批量删除地区医废每日统计
     *
     * @param ids
     *         需要删除的数据ID
     * @return 结果
     *         580a9426-adae-4315-8345-36b4f70d2a9d
     */
    public int deleteYfDistrictStatisticalByIds(String[] ids);


    // 批量添加地区统计
//3f6e4a8d-8b48-452e-afdc-2cd503f67d3b
    void insertYfDistrictStatisticalList(@Param("list") List<YfDistrictStatistical> list);

    // 根据地区及日期逻辑删除已经存在的统计
//    2204c77d-80cc-466e-afee-b10c4606c0f4
    void deleteYfDistrictStatisticalByDate(@Param("districtId") Long districtId, @Param("date") String date);


    // 查询需要同步科室的医疗机构
    List<SysDept> getNeedSyncKSDeDept();

    // 根据暂存点ids及日期查询医废表中的科室
    List<YfDept> getKSListFromYFByStagingIds(@Param("stagingIds") Long[] stagingIds, @Param("date") String date);

    // 根据医院id查询科室
    List<YfDept> getKSListFromKSTableByHospitalIds(@Param("hospitalIds") Long[] hospitalIds);

    // 把从医废表抓取的科室添加到科室表
    void insertKStoKSTable(YfDept yfDept);
}
